/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * ControlProyectoJInternalFrame.java
 *
 * Created on 04-19-2010, 04:43:11 PM
 */
package jepi.ui;

import db.MySQLManager;
import db.ResultSetComboBoxModel;
import java.beans.PropertyVetoException;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JDesktopPane;
import javax.swing.JOptionPane;
import jepi.CostoBeneficioProyecto;
import jepi.Proyecto;

import validadores.api.GrupoValidador;
import validadores.validadoresformato.DoubleValidador;
import validadores.validadoresformato.EnteroValidador;
import validadores.validadoresformato.StringValidador;

/**
 *
 * @author Steve
 */
public class ControlProyectoJInternalFrame extends javax.swing.JInternalFrame {
//

    Proyecto proyectoActual;
//    ProyectoDAO dao = new ProyectoDAO();
    GrupoValidador validadorInfoGeneral = new GrupoValidador();
    GrupoValidador validadorInfoFinanciera = new GrupoValidador();

    /** Creates new form ControlProyectoJInternalFrame */
    public ControlProyectoJInternalFrame() {
        initComponents();
//        dao.setSessionFactory(HibernateUtil.getSessionFactory());
        nombreValidador.configurarValidacion(nombreTextField,
                true, "Nombre proyecto no puede quedar vacio",
                new StringValidador("Ingrese el nombre del proyecto", 0, "Debe ingresar nombre de proyecto",
                100, "Nombre de proyecto no puede tener mas de 100 caracteres"));

        descripcionValidador.configurarValidacion(descripcionTextArea,
                true, "Descripcion del proyecto no debe quedar vacia",
                new StringValidador("Ingrese la descripcion del proyecto", 0, "Debe ingresar descripcion del proyecto",
                350, "Descripcion del proyecto no puede sobrepasar los 350 caracteres"));

        liderValidador.configurarValidacion(liderTextField,
                true, "Debe especificar el lider del proyecto",
                new StringValidador("Especifique el lider del proyecto", 0, "Debe ingresar el lider del proyecto",
                100, "El nombre del lider del proyecto no puede sobrepasar los 100 caracteres"));

        validadorInfoGeneral.add(nombreValidador, descripcionValidador, liderValidador);

        vidaEconomicaValidador.configurarValidacion(vidaEconomicaTextField,
                true, "Ingrese la vida economica",
                new EnteroValidador("Ingrese numero de años de vida economica",
                EnteroValidador.CONFIGURACIONES.POSITIVO, "Valor debe ser entero positivo"));

        inversionInicialValidador.configurarValidacion(inversionInicialTextField,
                false, "",
                new DoubleValidador("Ingrese valor de inversion inicial",
                DoubleValidador.CONFIGURACIONES.POSITIVO, "Debe ingresar una cantidad positiva"));

        valorRecuperacionValidador.configurarValidacion(valorRecuperacionTextField,
                false, "",
                new DoubleValidador("Ingrese el valor de recuperacion",
                DoubleValidador.CONFIGURACIONES.POSITIVO, "Debe ingresar una cantidad positiva"));

        validadorInfoFinanciera.add(vidaEconomicaValidador, inversionInicialValidador, valorRecuperacionValidador);
        jTabbedPane1.setVisible(false);
        unidadTiempoComboBox.setModel(new ResultSetComboBoxModel(
                MySQLManager.getConexionEstatica(), "SELECT id_unidad_tiempo,descripcion FROM catalogo_unidad_tiempo", "id_unidad_tiempo", "descripcion"));
        unidadTiempoComboBox.setSelectedIndex(0);
    }

    public void crearProyecto() {
        proyectoActual = new Proyecto();
        jTabbedPane1.setEnabledAt(1, false);
    }

    public boolean guardarInfoGeneralProyecto() {
        if (validadorInfoGeneral.validar()) {
            proyectoActual.setNombre(nombreTextField.getText());
            proyectoActual.setDescripcion(descripcionTextArea.getText());
            proyectoActual.setLiderProyecto(liderTextField.getText());
            String buscarProy = "select * from proyecto where nombre='" + proyectoActual.getNombre() + "'";
            if (proyectoActual.getIdProyecto() == 0 && MySQLManager.contarRegistros(buscarProy) > 0) {
                JOptionPane.showMessageDialog(null, "No se puede agregar proyecto.\n"
                        + "Proyecto ya habia sido agregado anteriormente");
            } else {
                proyectoActual.guardar();
                JOptionPane.showMessageDialog(null, "La informacion general del proyecto se ha guardado exitosamente");
                jTabbedPane1.setEnabledAt(1, true);
            }
        }
        return false;
    }

    public boolean guardarInfoFinancieraProyecto() {
        if (validadorInfoFinanciera.validar()) {
            ResultSetComboBoxModel cbm = (ResultSetComboBoxModel) unidadTiempoComboBox.getModel();
            proyectoActual.setIdUnidadTiempo(Integer.parseInt(cbm.getCampoIdAt(unidadTiempoComboBox.getSelectedIndex())));
            proyectoActual.setInversionInicial(Float.parseFloat(inversionInicialTextField.getText()));
            proyectoActual.setVidaEconomica(Integer.parseInt(vidaEconomicaTextField.getText()));
            proyectoActual.setValorDeRetorno(Float.parseFloat(valorRecuperacionTextField.getText()));

            if (proyectoActual.getInversionInicial() != 0) {
                CostoBeneficioProyecto cbp = new CostoBeneficioProyecto();
                cbp.setIdProyecto(proyectoActual.getIdProyecto());
                cbp.setPeriodo(1);
                cbp.setDescripcion("Inversion Inicial");
                cbp.setMonto((float) proyectoActual.getInversionInicial());
                cbp.setEsCosto(true);
                cbp.guardar();
            }
            if (proyectoActual.getValorDeRetorno() != 0) {
                CostoBeneficioProyecto cbp = new CostoBeneficioProyecto();
                cbp.setIdProyecto(proyectoActual.getIdProyecto());
                cbp.setPeriodo(proyectoActual.getVidaEconomica());
                cbp.setDescripcion("Valor de Retorno");
                cbp.setMonto((float) proyectoActual.getValorDeRetorno());
                cbp.setEsCosto(false);
                cbp.guardar();
            }

            JOptionPane.showMessageDialog(
                    null, "La informacion financiera del proyecto se ha guardado exitosamente");
            proyectoActual.guardar();
        }


        return false;


    }

    public void actualizarTextFields() {
        nombreTextField.setText(proyectoActual.getNombre());
        nombreValidador.cambiarEstadoInicial();
        descripcionTextArea.setText(proyectoActual.getDescripcion());
        descripcionValidador.cambiarEstadoInicial();
        liderTextField.setText(proyectoActual.getLiderProyecto());
        liderValidador.cambiarEstadoInicial();
        vidaEconomicaTextField.setText(String.valueOf(proyectoActual.getVidaEconomica()));
        vidaEconomicaValidador.cambiarEstadoInicial();
        inversionInicialTextField.setText(String.valueOf(proyectoActual.getInversionInicial()));
        inversionInicialValidador.cambiarEstadoInicial();
        valorRecuperacionTextField.setText(String.valueOf(proyectoActual.getValorDeRetorno()));
        valorRecuperacionValidador.cambiarEstadoInicial();


        try {
            String des = MySQLManager.ejecutarConsultaSelect(
                    "select * from catalogo_unidad_tiempo where id_unidad_tiempo="
                    + proyectoActual.getIdUnidadTiempo(), true).getString("descripcion");
            unidadTiempoComboBox.setSelectedItem(des);


        } catch (SQLException ex) {
            System.out.println(ex);


        }
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jTabbedPane1 = new javax.swing.JTabbedPane();
        infoGeneralPanel = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        nombreTextField = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        descripcionTextArea = new javax.swing.JTextArea();
        jLabel3 = new javax.swing.JLabel();
        liderTextField = new javax.swing.JTextField();
        nombreValidador = new validadores.api.ValidadorJTextComponent();
        descripcionValidador = new validadores.api.ValidadorJTextComponent();
        liderValidador = new validadores.api.ValidadorJTextComponent();
        guardarInfoGeneralButton = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        reporteButton = new javax.swing.JButton();
        infoFinancieraPanel = new javax.swing.JPanel();
        jLabel4 = new javax.swing.JLabel();
        vidaEconomicaTextField = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        inversionInicialTextField = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        valorRecuperacionTextField = new javax.swing.JTextField();
        vidaEconomicaValidador = new validadores.api.ValidadorJTextComponent();
        inversionInicialValidador = new validadores.api.ValidadorJTextComponent();
        valorRecuperacionValidador = new validadores.api.ValidadorJTextComponent();
        guardarInfoFinancieraButton = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jButton5 = new javax.swing.JButton();
        unidadTiempoComboBox = new javax.swing.JComboBox();
        menuToolBar = new javax.swing.JToolBar();
        agregarButton = new javax.swing.JButton();
        modificarButton = new javax.swing.JButton();
        eliminarButton = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        agregarMenuItem = new javax.swing.JMenuItem();
        modificarMenuItem = new javax.swing.JMenuItem();
        eliminarMenuItem = new javax.swing.JMenuItem();
        cerrarMenuItem = new javax.swing.JMenuItem();

        setClosable(true);
        setIconifiable(true);
        setMaximizable(true);
        setResizable(true);
        setTitle("Proyectos");

        jLabel1.setText("Nombre Proyecto:");

        jLabel2.setText("Descripcion:");

        descripcionTextArea.setColumns(20);
        descripcionTextArea.setRows(5);
        descripcionTextArea.setNextFocusableComponent(liderTextField);
        jScrollPane1.setViewportView(descripcionTextArea);

        jLabel3.setText("Lider del proyecto:");

        guardarInfoGeneralButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/guardar.png"))); // NOI18N
        guardarInfoGeneralButton.setText("Guardar");
        guardarInfoGeneralButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                guardarInfoGeneralButtonActionPerformed(evt);
            }
        });

        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/cerrar.png"))); // NOI18N
        jButton2.setText("Cancelar");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        reporteButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/imprimir.png"))); // NOI18N
        reporteButton.setText("Imprimir...");
        reporteButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                reporteButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout infoGeneralPanelLayout = new javax.swing.GroupLayout(infoGeneralPanel);
        infoGeneralPanel.setLayout(infoGeneralPanelLayout);
        infoGeneralPanelLayout.setHorizontalGroup(
            infoGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(infoGeneralPanelLayout.createSequentialGroup()
                .addGap(13, 13, 13)
                .addGroup(infoGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel2)
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(infoGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE)
                    .addComponent(nombreTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(infoGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(nombreValidador, javax.swing.GroupLayout.DEFAULT_SIZE, 186, Short.MAX_VALUE)
                    .addComponent(descripcionValidador, javax.swing.GroupLayout.DEFAULT_SIZE, 186, Short.MAX_VALUE))
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, infoGeneralPanelLayout.createSequentialGroup()
                .addContainerGap(304, Short.MAX_VALUE)
                .addComponent(reporteButton, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(29, 29, 29)
                .addComponent(guardarInfoGeneralButton)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jButton2)
                .addGap(7, 7, 7))
            .addGroup(infoGeneralPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(liderTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(liderValidador, javax.swing.GroupLayout.DEFAULT_SIZE, 186, Short.MAX_VALUE)
                .addContainerGap())
        );

        infoGeneralPanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {guardarInfoGeneralButton, jButton2});

        infoGeneralPanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jScrollPane1, liderTextField, nombreTextField});

        infoGeneralPanelLayout.setVerticalGroup(
            infoGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(infoGeneralPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(infoGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(nombreTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(nombreValidador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(infoGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2)
                    .addComponent(descripcionValidador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(11, 11, 11)
                .addGroup(infoGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(liderTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3)
                    .addComponent(liderValidador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 71, Short.MAX_VALUE)
                .addGroup(infoGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(guardarInfoGeneralButton)
                    .addComponent(jButton2)
                    .addComponent(reporteButton, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jTabbedPane1.addTab("Informacion General", infoGeneralPanel);

        jLabel4.setText("Vida Economica:");

        jLabel5.setText("Inversion Inicial:");

        jLabel6.setText("Valor de Recuperacion:");

        guardarInfoFinancieraButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/guardar.png"))); // NOI18N
        guardarInfoFinancieraButton.setText("Guardar");
        guardarInfoFinancieraButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                guardarInfoFinancieraButtonActionPerformed(evt);
            }
        });

        jButton4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/cerrar.png"))); // NOI18N
        jButton4.setText("Cancelar");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jButton5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/emblem-money.png"))); // NOI18N
        jButton5.setText("Especificar Costos e Ingresos");
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout infoFinancieraPanelLayout = new javax.swing.GroupLayout(infoFinancieraPanel);
        infoFinancieraPanel.setLayout(infoFinancieraPanelLayout);
        infoFinancieraPanelLayout.setHorizontalGroup(
            infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(infoFinancieraPanelLayout.createSequentialGroup()
                .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(infoFinancieraPanelLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel4)
                            .addComponent(jLabel5)
                            .addComponent(jLabel6))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(valorRecuperacionTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE)
                            .addComponent(inversionInicialTextField)
                            .addComponent(vidaEconomicaTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(inversionInicialValidador, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(valorRecuperacionValidador, javax.swing.GroupLayout.DEFAULT_SIZE, 342, Short.MAX_VALUE)
                            .addGroup(infoFinancieraPanelLayout.createSequentialGroup()
                                .addComponent(unidadTiempoComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(vidaEconomicaValidador, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addGroup(infoFinancieraPanelLayout.createSequentialGroup()
                        .addGap(215, 215, 215)
                        .addComponent(jButton5)))
                .addContainerGap(51, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, infoFinancieraPanelLayout.createSequentialGroup()
                .addContainerGap(452, Short.MAX_VALUE)
                .addComponent(guardarInfoFinancieraButton)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jButton4)
                .addContainerGap())
        );

        infoFinancieraPanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {guardarInfoFinancieraButton, jButton4});

        infoFinancieraPanelLayout.setVerticalGroup(
            infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(infoFinancieraPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel4)
                        .addComponent(vidaEconomicaTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(unidadTiempoComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(vidaEconomicaValidador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel5)
                    .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(inversionInicialTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(inversionInicialValidador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(18, 18, 18)
                .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(valorRecuperacionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(valorRecuperacionValidador, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(52, 52, 52)
                .addComponent(jButton5)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 82, Short.MAX_VALUE)
                .addGroup(infoFinancieraPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(guardarInfoFinancieraButton)
                    .addComponent(jButton4))
                .addContainerGap())
        );

        jTabbedPane1.addTab("Informacion Financiera", infoFinancieraPanel);

        getContentPane().add(jTabbedPane1, java.awt.BorderLayout.CENTER);

        menuToolBar.setRollover(true);

        agregarButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/create.png"))); // NOI18N
        agregarButton.setText("Agregar Proyecto");
        agregarButton.setFocusable(false);
        agregarButton.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        agregarButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        agregarButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                agregarButtonActionPerformed(evt);
            }
        });
        menuToolBar.add(agregarButton);

        modificarButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/modify.png"))); // NOI18N
        modificarButton.setText("Modificar Proyecto");
        modificarButton.setFocusable(false);
        modificarButton.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        modificarButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        modificarButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                modificarButtonActionPerformed(evt);
            }
        });
        menuToolBar.add(modificarButton);

        eliminarButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/delete.png"))); // NOI18N
        eliminarButton.setText("Eliminar Proyecto");
        eliminarButton.setFocusable(false);
        eliminarButton.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        eliminarButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        eliminarButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                eliminarButtonActionPerformed(evt);
            }
        });
        menuToolBar.add(eliminarButton);

        getContentPane().add(menuToolBar, java.awt.BorderLayout.PAGE_START);

        jMenu1.setText("Menu");

        agregarMenuItem.setText("Agregar Proyecto");
        agregarMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                agregarMenuItemActionPerformed(evt);
            }
        });
        jMenu1.add(agregarMenuItem);

        modificarMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, java.awt.event.InputEvent.CTRL_MASK));
        modificarMenuItem.setText("Modificar Proyecto..");
        modificarMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                modificarMenuItemActionPerformed(evt);
            }
        });
        jMenu1.add(modificarMenuItem);

        eliminarMenuItem.setText("Eliminar Proyecto");
        eliminarMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                eliminarMenuItemActionPerformed(evt);
            }
        });
        jMenu1.add(eliminarMenuItem);

        cerrarMenuItem.setText("Cerrar");
        cerrarMenuItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cerrarMenuItemActionPerformed(evt);
            }
        });
        jMenu1.add(cerrarMenuItem);

        jMenuBar1.add(jMenu1);

        setJMenuBar(jMenuBar1);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void guardarInfoGeneralButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guardarInfoGeneralButtonActionPerformed
            guardarInfoGeneralProyecto();
    }//GEN-LAST:event_guardarInfoGeneralButtonActionPerformed

    private void guardarInfoFinancieraButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guardarInfoFinancieraButtonActionPerformed
        guardarInfoGeneralProyecto();
        guardarInfoFinancieraProyecto();
    }//GEN-LAST:event_guardarInfoFinancieraButtonActionPerformed
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        this.dispose();
    }//GEN-LAST:event_jButton2ActionPerformed
    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
        this.dispose();
    }//GEN-LAST:event_jButton4ActionPerformed
    private void cerrarMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cerrarMenuItemActionPerformed
        this.dispose();
    }//GEN-LAST:event_cerrarMenuItemActionPerformed

    private void modificarMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_modificarMenuItemActionPerformed
        BuscarProyectoJDialog bpd = new BuscarProyectoJDialog(null, true);
        bpd.setVisible(true);


        if (bpd.getReturnStatus() == BuscarProyectoJDialog.RET_OK) {
            proyectoActual = bpd.getProyectoSeleccionado();
            actualizarTextFields();
            jTabbedPane1.setVisible(true);
            jTabbedPane1.setEnabledAt(1, true);


        }
    }//GEN-LAST:event_modificarMenuItemActionPerformed

    private void agregarMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_agregarMenuItemActionPerformed
        proyectoActual = new Proyecto();
        actualizarTextFields();
        jTabbedPane1.setVisible(true);
        jTabbedPane1.setEnabledAt(1, false);
    }//GEN-LAST:event_agregarMenuItemActionPerformed

    private void eliminarMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_eliminarMenuItemActionPerformed
        BuscarProyectoJDialog bpd = new BuscarProyectoJDialog(null, true);
        bpd.setVisible(true);


        if (bpd.getReturnStatus() == BuscarProyectoJDialog.RET_OK) {
            proyectoActual = bpd.getProyectoSeleccionado();


            int resp = JOptionPane.showConfirmDialog(this, "<html>¿Realmente desea eliminar el proyecto <b>" + proyectoActual.getNombre() + "?</b></html>",
                    "Confirmacion de Eliminacion", JOptionPane.YES_NO_OPTION);


            if (resp == JOptionPane.YES_OPTION) {
                proyectoActual.eliminar();
                agregarMenuItemActionPerformed(
                        null);
                jTabbedPane1.setVisible(false);


            }
        }
    }//GEN-LAST:event_eliminarMenuItemActionPerformed

    private void agregarButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_agregarButtonActionPerformed
        agregarMenuItemActionPerformed(null);
    }//GEN-LAST:event_agregarButtonActionPerformed
    private void modificarButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_modificarButtonActionPerformed
        modificarMenuItemActionPerformed(null);
    }//GEN-LAST:event_modificarButtonActionPerformed
    private void eliminarButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_eliminarButtonActionPerformed
        eliminarMenuItemActionPerformed(null);
    }//GEN-LAST:event_eliminarButtonActionPerformed

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
        try {
            JDesktopPane m = (JDesktopPane) this.getParent();
            CostosBeneficiosJInternalFrame internalFrame = new CostosBeneficiosJInternalFrame();
            internalFrame.setProyectoActual(proyectoActual);
            internalFrame.setVisible(true);
            m.add(internalFrame, javax.swing.JLayeredPane.DEFAULT_LAYER);
            internalFrame.setMaximum(false);
            internalFrame.setSelected(true);


        } catch (PropertyVetoException ex) {
            System.out.println(ex);


        }

    }//GEN-LAST:event_jButton5ActionPerformed

    private void reporteButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_reporteButtonActionPerformed
        try {
            JDesktopPane m = (JDesktopPane) this.getParent();
            ReporteProyectoJInternalFrame internalFrame = new ReporteProyectoJInternalFrame(proyectoActual.getIdProyecto());
            internalFrame.setVisible(true);
            m.add(internalFrame, javax.swing.JLayeredPane.DEFAULT_LAYER);
            internalFrame.setMaximum(false);
            internalFrame.setSelected(true);
        } catch (PropertyVetoException ex) {
            System.out.println(ex);
        }
    }//GEN-LAST:event_reporteButtonActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton agregarButton;
    private javax.swing.JMenuItem agregarMenuItem;
    private javax.swing.JMenuItem cerrarMenuItem;
    private javax.swing.JTextArea descripcionTextArea;
    private validadores.api.ValidadorJTextComponent descripcionValidador;
    private javax.swing.JButton eliminarButton;
    private javax.swing.JMenuItem eliminarMenuItem;
    private javax.swing.JButton guardarInfoFinancieraButton;
    private javax.swing.JButton guardarInfoGeneralButton;
    private javax.swing.JPanel infoFinancieraPanel;
    private javax.swing.JPanel infoGeneralPanel;
    private javax.swing.JTextField inversionInicialTextField;
    private validadores.api.ValidadorJTextComponent inversionInicialValidador;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTextField liderTextField;
    private validadores.api.ValidadorJTextComponent liderValidador;
    private javax.swing.JToolBar menuToolBar;
    private javax.swing.JButton modificarButton;
    private javax.swing.JMenuItem modificarMenuItem;
    private javax.swing.JTextField nombreTextField;
    private validadores.api.ValidadorJTextComponent nombreValidador;
    private javax.swing.JButton reporteButton;
    private javax.swing.JComboBox unidadTiempoComboBox;
    private javax.swing.JTextField valorRecuperacionTextField;
    private validadores.api.ValidadorJTextComponent valorRecuperacionValidador;
    private javax.swing.JTextField vidaEconomicaTextField;
    private validadores.api.ValidadorJTextComponent vidaEconomicaValidador;
    // End of variables declaration//GEN-END:variables
}
